#include<bits/stdc++.h>
using namespace std;
map<long long,long long> mp;
int n,a,b,c,d,e,bz;
char aa,bb,cc,dd,ee,xc[101],xx,tot;
string name;
int main()
{
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		cin>>name;
		if(name=="Server")
		{
			cin.getline(xc,100);
			xc[100]=strlen(xc);
			tot=1;
			bz=1;
			a=xc[0]-'0';
			if(a!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					a=a*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!='.'||a>255)
			{
				printf("ERR\n");
				continue;
			}
			b=xc[tot++]-'0';
			if(b!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					b=b*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!='.'||b>255)
			{
				printf("ERR\n");
				continue;
			}
			c=xc[tot++]-'0';
			if(c!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					c=c*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!='.'||c>255)
			{
				printf("ERR\n");
				continue;
			}
			d=xc[tot++]-'0';
			if(d!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					d=d*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!=':'||d>255)
			{
				printf("ERR\n");
				continue;
			}
			e=xc[tot++]-'0';
			if(e!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					e=e*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(e>65535)
			{
				printf("ERR\n");
				continue;
			}
			if(mp[e+d*100000+c*100000*1000+b*100000*1000*1000+a*100000*1000*1000*1000]==0)
			{
				mp[e+d*100000+c*100000*1000+b*100000*1000*1000+a*100000*1000*1000*1000]=i;
				printf("OK\n");
			}
			else
			{
				printf("FAIL\n");
			}
		}
		else
		{
			cin.getline(xc,100);
			xc[100]=strlen(xc);
			tot=1;
			bz=1;
			a=xc[0]-'0';
			if(a!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					a=a*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!='.'||a>255)
			{
				printf("ERR\n");
				continue;
			}
			b=xc[tot++]-'0';
			if(b!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					b=b*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!='.'||b>255)
			{
				printf("ERR\n");
				continue;
			}
			c=xc[tot++]-'0';
			if(c!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					c=c*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!='.'||c>255)
			{
				printf("ERR\n");
				continue;
			}
			d=xc[tot++]-'0';
			if(d!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					d=d*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(xx!=':'||d>255)
			{
				printf("ERR\n");
				continue;
			}
			e=xc[tot++]-'0';
			if(e!=0)
				while(xc[tot]>='0'&&xc[tot]<='9'&&tot<=xc[100])
					e=e*10+xc[tot++]-'0';
			xx=xc[tot++];
			if(e>65535)
			{
				printf("ERR\n");
				continue;
			}
			if(mp[e+d*100000+c*100000*1000+b*100000*1000*1000+a*100000*1000*1000*1000]!=0)
			{
				printf("%d\n",mp[e+d*100000+c*100000*1000+b*100000*1000*1000+a*100000*1000*1000*1000]);
			}
			else
			{
				printf("FAIL\n");
			}
		}
	}
	return 0;
}
